home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / uxterm < prev    next >
Text File  |  2009-06-03  |  2KB  |  85 lines

  1. #!/bin/sh
  2. # $XTermId: uxterm,v 1.25 2007/12/30 16:33:36 tom Exp $
  3. #
  4. # wrapper script to setup xterm with UTF-8 locale
  5.  
  6. whoami=uxterm
  7.  
  8. : ${XTERM_PROGRAM=xterm}
  9.  
  10. # Check if there is a workable locale program.  If there is not, we will read
  11. # something via the standard error.  Ignore whatever is written to the
  12. # standard output.
  13. locale=`sh -c "LC_ALL=C LC_CTYPE=C LANG=C locale >/dev/null" 2>&1`
  14. found=no
  15.  
  16. # Check for -version and -help options, to provide a simple return without
  17. # requiring the program to create a window:
  18. if test $# = 1
  19. then
  20.     case $1 in
  21.     -v|-ver*|-h|-he*)
  22.         $XTERM_PROGRAM "$@"
  23.         exit $?
  24.         ;;
  25.     esac
  26. fi
  27.  
  28. # Check environment variables that xterm does, in the same order:
  29. for name in LC_ALL LC_CTYPE LANG
  30. do
  31.     eval 'value=$'$name
  32.     if test -n "$value" ; then
  33.         case $value in
  34.         *.utf8|*.UTF8|*.utf-8|*.UTF-8)
  35.             found=yes
  36.             ;;
  37.         *.utf8@*|*.UTF8@*|*.utf-8@*|*.UTF-8@*)
  38.             found=yes
  39.             ;;
  40.         C|POSIX)
  41.             # Yes, I know this is not the same - but why are you
  42.             # here then?
  43.             value=en_US
  44.             ;;
  45.         esac
  46.         break
  47.     fi
  48. done
  49.  
  50. # If we didn't find one that used UTF-8, modify the safest one.  Not everyone
  51. # has a UTF-8 locale installed (and there appears to be no trivial/portable way
  52. # to determine whether it is, from a shell script).  We could check if the
  53. # user's shell does not reset unknown locale specifiers, but not all shells do.
  54. if test $found != yes ; then
  55.     if test -n "$value" ; then
  56.         value=`echo ${value} |sed -e 's/[.@].*//'`.UTF-8
  57.     else
  58.         name="LC_CTYPE"
  59.         value="en_US.UTF-8"
  60.     fi
  61.     eval save=\$${name}
  62.     eval ${name}=${value}
  63.     eval export ${name}
  64.     if test -z "$locale" ; then
  65.         # The 'locale' program tries to do a sanity check.
  66.         check=`sh -c "locale >/dev/null" 2>&1`
  67.         if test -n "$check" ; then
  68.             eval ${name}=${save}
  69.             eval export ${name}
  70.  
  71.             echo "$whoami tried to use locale $value by setting \$$name" >&2
  72.             xmessage -file - <<EOF
  73. $whoami tried unsuccessfully to use locale $value
  74. by setting \$$name to "${value}".
  75. EOF
  76.             exit 1
  77.         fi
  78.     fi
  79. fi
  80.  
  81. # for testing:
  82. #test -f ./xterm && XTERM_PROGRAM=./xterm
  83.  
  84. exec $XTERM_PROGRAM -class UXTerm -title $whoami -u8 "$@"
  85.